From eb092c6fe974b8f9ee7c20fd98b8b5a1994beac9 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Thu, 9 Mar 2006 16:16:20 -0700 Subject: [PATCH] [IA64] user process should not crash Xen. Iip can't be used to check if domain is inside Xen because IIP is a user register. CPL must be used instead. Signed-off-by: Tristan Gingold --- xen/arch/ia64/xen/process.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xen/arch/ia64/xen/process.c b/xen/arch/ia64/xen/process.c index f83468b936..e7846154e4 100644 --- a/xen/arch/ia64/xen/process.c +++ b/xen/arch/ia64/xen/process.c @@ -286,7 +286,8 @@ void ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_reg vcpu_itc_no_srlz(current,is_data?2:1,address,pteval,-1UL,(itir>>2)&0x3f); return; } - if (IS_VMM_ADDRESS(iip)) { + if (!user_mode (regs)) { + /* The fault occurs inside Xen. */ if (!ia64_done_with_exception(regs)) { // should never happen. If it does, region 0 addr may // indicate a bad xen pointer -- 2.30.2